package javaLearning.接口与继承;

/**
 * @author : K k
 * @date : 10:39 2020/9/2
 * final static private 修饰的方法不能被重写
 * private在父类中 会对子类隐藏
 *
 * 重写：
 * 重写父类的方法时，方法修饰符权限范围要大于父类方法
 * （抛出异常情况）
 * 重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常。例如：
 * 父类的一个方法申明了一个检查异常IOException，在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常，可以抛出非检查异常
 */
public class Son extends Parent {
    int y=1;
    static int x;
    static {
        System.out.println("子类静态代码块"+x);
        x=20;
    }

    {
        System.out.println("子类普通代码块"+x+y);
    }
    Son(){
        this.y=2;
        System.out.println("子类构造器"+x+y);
    }

    //static
    static void action3(){
        //Parent.action3();//可以调用
        System.out.println("static"+x);

    }

    //public
    @Override
    public void action4() {
        super.action4();//public可以调用
    }

    //测试重写
    //protected
    @Override
    protected void action5() {
        int x=j;//final
        int y=p;//static
        int z=q;//protected
        action1();//final
        action3();//static
        action4();//public
        super.action5(); //protected可以调用
    }
}
